<html>
<head>
<title>Sample JWS-JS Generator</title>
<script language="JavaScript" type="text/javascript" src="../jsrsasign-all-min.js"></script>

<style type="text/css">
TD  {vertical-align: top; border: solid 1px #000000; }
</style>
<script language="JavaScript" type="text/javascript">
var jwsjs = null;

function addSignature() {
  if (jwsjs == null) {
    jwsjs = new KJUR.jws.JWSJS();
  }

  var sHeader = newline_toDos(document.form1.jwshead1.value);
  var sPayload = newline_toDos(document.form1.jwspayload1.value);
  var sPrvKey = document.form1.pemprvkey1.value;
  
  if (jwsjs.isEmpty()) {
    var jws1 = KJUR.jws.JWS.sign(null, sHeader, sPayload, sPrvKey);
    jwsjs.initWithJWS(jws1);
  } else {
    jwsjs.addSignature(null, sHeader, sPrvKey);
  }
  document.form1.jwsjs1.value = newline_toDos(JSON.stringify(jwsjs.getJSON(), null, 2));
}

function doInit() {
  jwsjs = new KJUR.jws.JWSJS();
  document.form1.jwsjs1.value = "";
}
</script>
</head>

<body>

<form name="form1">
<h1>Sample JWS-JS Generator</h1>

<h3>(STEP1) specify fields for each one of JWS-JS parallel signature</h3>

<p>
<b><i>addding JWS Header</i></b><br/>
<textarea name="jwshead1" rows="3" cols="100">{"alg":"RS256"}</textarea>
<br/>
</p>

<p>
<b><i>adding JWS Payload for the first time</i></b><br/>
<textarea name="jwspayload1" rows="3" cols="100">{"iss":"joe",
 "exp":1300819380,
 "http://example.com/is_root":true}</textarea><br/>
<i>NOTE: This field will be ignored when this is 2nd time and later since existing payload will be used.</i>
</p>

<b><i>signing private key</i></b><br/>
<textarea name="pemprvkey1" rows="10" cols="80">-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA4qiw8PWs7PpnnC2BUEoDRcwXF8pq8XT1/3Hc3cuUJwX/otNe
fr/Bomr3dtM0ERLN3DrepCXvuzEU5FcJVDUB3sI+pFtjjLBXD/zJmuL3Afg91J9p
79+Dm+43cR6wuKywVJx5DJIdswF6oQDDzhwu89d2V5x02aXB9LqdXkPwiO0eR5s/
xHXgASl+hqDdVL9hLod3iGa9nV7cElCbcl8UVXNPJnQAfaiKazF+hCdl/syrIh0K
CZ5opggsTJibo8qFXBmG4PkT5YbhHE11wYKILwZFSvZ9iddRPQK3CtgFiBnXbVwU
5t67tn9pMizHgypgsfBoeoyBrpTuc4egSCpjsQIDAQABAoIBAF2sU/wxvHbwAhQE
pnXVMMcO0thtOodxzBz3JM2xThhWnVDgxCPkAhWq2X0NSm5n9BY5ajwyxYH6heTc
p6lagtxaMONiNaE2W7TqxzMw696vhnYyL+kH2e9+owEoKucXz4QYatqsJIQPb2vM
0h+DfFAgUvNgYNZ2b9NBsLn9oBImDfYueHyqpRGTdX5urEVtmQz029zaC+jFc7BK
Y6qBRSTwFwnVgE+Td8UgdrO3JQ/0Iwk/lkphnhls/BYvdNC5O8oEppozNVmMV8jm
61K+agOh1KD8ky60iQFjo3VdFpUjI+W0+sYiYpDb4+Z9OLOTK/5J2EBAGim9siyd
gHspx+UCgYEA9+t5Rs95hG9Q+6mXn95hYduPoxdFCIFhbGl6GBIGLyHUdD8vmgwP
dHo7Y0hnK0NyXfue0iFBYD94/fuUe7GvcXib93heJlvPx9ykEZoq9DZnhPFBlgIE
SGeD8hClazcr9O99Fmg3e7NyTuVou+CIublWWlFyN36iamP3a08pChsCgYEA6gvT
pi/ZkYI1JZqxXsTwzAsR1VBwYslZoicwGNjRzhvuqmqwNvK17dnSQfIrsC2VnG2E
UbE5EIAWbibdoL4hWUpPx5Tl096OjC3qBR6okAxbVtVEY7Rmv7J9RwriXhtD1DYp
eBvo3eQonApFkfI8Lr2kuKGIgwzkZ72QLXsKJiMCgYBZXBCci0/bglwIObqjLv6e
zQra2BpT1H6PGv2dC3IbLvBq7hN0TQCNFTmusXwuReNFKNq4FrB/xqEPusxsQUFh
fv2Il2QoI1OjUE364jy1RZ7Odj8TmKp+hoEykPluybYYVPIbT3kgJy/+bAXyIh5m
Av2zFEQ86HIWMu4NSb0bHQKBgETEZNOXi52tXGBIK4Vk6DuLpRnAIMVl0+hJC2DB
lCOzIVUBM/VxKvNP5O9rcFq7ihIEO7SlFdc7S1viH4xzUOkjZH2Hyl+OLOQTOYd3
kp+AgfXpg8an4ujAUP7mu8xaxns7zsNzr+BCgYwXmIlhWz2Aiz2UeL/IsfOpRwuV
801xAoGADQB84MJe/X8xSUZQzpn2KP/yZ7C517qDJjComGe3mjVxTIT5XAaa1tLy
T4mvpSeYDJkBD8Hxr3fB1YNDWNbgwrNPGZnUTBNhxIsNLPnV8WySiW57LqVXlggH
vjFmyDdU5Hh6ma4q+BeAqbXZSJz0cfkBcBLCSe2gIJ/QJ3YJVQI=
-----END RSA PRIVATE KEY-----</textarea>
</p>

<h3>(STEP 2)Append multiple parallel signature to a JWS-JS</h3>
<p>
<input type="button" value="Append Signature" onClick="addSignature();"/>
<input type="button" value="Initialize" onClick="doInit();"/>
<br/>
<i>NOTE: You can press 'Append Signature' one or more times to add
multiple parallel signatures to a JWS-JS. If you want to change
JWS Header and signing key for each signatures, please modify
above 'JWS Header' and 'signing key' fields then push 'Append Signature'.</i>
</p>

<h2>Result of JWS-JS parallsl signature</h2>
<p>
<textarea name="jwsjs1" rows="100" cols="65"></textarea>
</p>
</form>

<center>
Copyright &copy; 2012-2016 Kenji Urushima, All Rights Reserved.
</center>

<div align="right">
<a href="index.html">Go back to index</a>
</div>

</body>
</html>
